# 47.计算二维列表中所有数字的平均数
# [
# [1,2,3],
# [4,5,6],
# [7,8,9]
# ]
l0=[
[1,2,3],
[4,5,6],
[7,8,9]
]
sum=0  #total
count=0
for i in range(len(l0)):
    for j in range(len(l0[i])):
        # print(l0[i][j])
        sum+=l0[i][j]
        count+=1
print(sum,count,sum/count)

# 48 编写一个程序，输入一个字符串，统计其中每个字符出现的次数
str0=input("请输入一个字符串：")
d0={}
for i in str0:
    if i not in d0:
        d0[i]=1
    elif i in d0:
        d0[i]+=1
print(d0)

# 49 编写一个程序，输入一个列表和一个整数 n，
# 将该列表中的所有元素都循环右移 n 位，并输出修改后的列表。
# l1=list(input("请输入一个列表："))
# n=int(input("请输入一个整数："))
# print(l1,n)
l1=['1','2','3','4','5']
l2=[]
n=2
for i in range(len(l1)):
    l2.append(l1[(i+n)%len(l1)])
print(l2)


###不会


# 50.找出一个二维数组每行的最大值
# [
#     [1, 5, 9],
#     [2, 3, 6],
# [7, 5, 3]
# ]
# 输入 9 6 7
l0=[
    [1, 5, 9],
    [2, 3, 6],
[7, 5, 3]
]
for i in range(len(l0)):
    # print(l0[i])
    max=0
    for j in range(len(l0[i])):
        # print(l0[i][j])
        if max<l0[i][j]:
            max=l0[i][j]
    print(max)


# 51.找出一个二维数组每列的最大值
# [
#     [1, 5, 9],
#     [2, 3, 6],
#     [7, 5, 3]
# ]
# 输入 7 5 9
l1=[
    [1, 5, 9],
    [2, 3, 6],
    [7, 5, 3]
]
def get_n(n):
    max=0
    for i in range(len(l1)):
        # print(l1[i])
        if max<l1[i][n-1]:
            max=l1[i][n-1]
    return max
for j in range(1,len(l1)+1):
    r=get_n(j)
    print(r)




# 一、封装函数求1+2+3+4+...+100
def get_n(n):
    sum=0
    for i in range(n,0,-1):
        sum+=i
    return sum
print(get_n(100))

# 二、封装函数包含两个形参start与end 返回start到end之间奇数的和
def s_e(start,end):
    sum_odd=0
    sum_even=0
    for i in range(start,end+1):
        if i%2==0:
            sum_odd+=i
        else:
            sum_even+=i
    return sum_odd,sum_even


r=s_e(3,6)
print(r)

# 三、封装函数：可以判断一个数是否是质数
def if_n(n):
    for i in range(2,n):
        if n%i==0:
            return False
    return True
r=if_n(6)
print(r)


# 五、编写函数求start到end以内所有的相差为step的素数对
def s_e_s(start,end,step):
    l0 = []
    for i in range(start,end+1,step):
        for j in range(2,i):
            if i%j==0:
                break
        else:
            if i not in l0:
                l0.append(i)
    print(l0)
    # return l0
    for c in l0:
        if c+step in l0:
            print(c,c+step)
r=s_e_s(1,100,6)
print(r)


# 八.编写学生管理系统，实现以下需求
# [{id:101, name:"abc", sex:1},
# {{id:101, name:"abc", sex:1},
# {{id:101, name:"abc", sex:1}]
# 输入数字1，添加学生信息（名字，年纪，性别）
# 输入数字2，查看所有学生信息
# 输入数字3，统计学生平均年纪
# 输入数字4，统计学生性别比例
# 输入数字5，退出系统

l0=[{'name':'d','sex':1,'age':20},
    {'name':'z','sex':1,'age':24}]
while True:
    sum=0
    n = int(input("请输入一个数："))
    if n==1:
        l0.append({'name':input("请输入名字"),
                   'sex':input('请输入性别'),
                   'age':input('请输入年龄')})
        print(l0)
    elif n==2:
        print(l0)
    elif n==3:
        for i in range(len(l0)):
            sum+=int(l0[i]['age'])
        print(f'平均年纪为{sum/len(l0)}')
    elif n==4:
        man_num = 0
        wamen_num = 0
        for i in range(len(l0)):
            if int(l0[i]['sex']) == 1:
                man_num += 1
            else:
                wamen_num += 1
        print(f'男女比为{man_num}比{wamen_num}')
    elif n==5:
        print('退出系统')
        break
    else:
        print('输入错误')

# 九.编写学生管理系统，实现增删改查
# 输入数字1，添加学生信息（编号, 名字，年纪，性别）
# 第一个学生id为101 后续学生自动加1
# 输入数字2，查看所有学生信息
# 输入数字3，查看指定学生信息
# 输入学生id，显示对应学生信息
# 输入数字4，修改学生信息
# 输入学生id，输入学生新名字，新年纪，新性别
# 输入数字5，删除指定学生
# 输入学生id，删除指定学生
# 输入数字0，退出系统
l0=[{'id':101,'name':'deng','age':20,'sex':1},
    {'id':102,'name':'zhang','age':24,'sex':0}]
while True:
    n=int(input('请输入一个数：'))
    if n==1:
        l0.append({
                'id':input("请输入编号"),
                'name': input("请输入名字"),
                'age': input('请输入年龄'),
                'sex': input('请输入性别')})
        print(l0)
    elif n==2:
        print(l0)
    elif n==3:
        id=int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id']==id:
                print(l0[i])
    elif n==4:
        id=int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id']==id:
                l0[i]['name']=input('请输入新的名字：')
                l0[i]['age']=input('请输入新的年纪：')
                l0[i]['sex']=input('请输入新的性别')
                print(l0[i])
                print(l0)
    elif n==5:
        id = int(input("请输入学生id："))
        for i in range(len(l0)):
            if l0[i]['id'] == id:
                l0.pop(i)
                print(l0)
                break
    elif n==0:
        print('exit')
        break
    else:
        print('输入错误')